package visiopuce.ui.listener;

import java.awt.Desktop;
import java.io.File;
import java.io.IOException;

import org.eclipse.jface.dialogs.MessageDialog;
import org.eclipse.swt.events.SelectionAdapter;
import org.eclipse.swt.events.SelectionEvent;
import org.eclipse.swt.widgets.Display;
import org.eclipse.ui.PlatformUI;

import visiopuce.ApplicationContexte;
import visiopuce.objets.Prelevement;
import visiopuce.service.document.CultureDoc;
import visiopuce.service.document.FicheCultureDoc;
import visiopuce.ui.view.DossierEditor;
import visiopuce.ui.view.PrelevementTabItem;

public class GenererCultureListener extends SelectionAdapter {

	private String type;
	private String secteur;
	private PrelevementTabItem prelTabItem;

	public GenererCultureListener(PrelevementTabItem prelTabItem, String type, String secteur) {
		super();
		this.type = type;
		this.secteur = secteur;
		this.prelTabItem = prelTabItem;
	}

	public void widgetSelected(SelectionEvent e) {
		if (((DossierEditor) PlatformUI.getWorkbench().getActiveWorkbenchWindow().getActivePage().getActiveEditor()).isDirty()) {
			MessageDialog.openInformation(Display.getCurrent().getActiveShell(), "Attention", "Avant de générer le document vous devez enregistrer le dossier.");
		} else {
			Prelevement prele = prelTabItem.getPrelevement();
			String nomFichierf = "";
			String nomFichier = "";
			File fichierResultat = null;
			File fichierResultatf = null;

			if (prele.getNumeroPrelevement().contains("LA") || prele.getNumeroPrelevement().contains("VC") || prele.getNumeroPrelevement().contains("SF") || prele.getNumeroPrelevement().contains("F")) {
				CultureDoc cultureDoc = new CultureDoc();
				nomFichier = cultureDoc.createDocument(prele, type, secteur);
				fichierResultat = new File(ApplicationContexte.REPERTOIRE_PROTOCOLE + nomFichier);

			}

			FicheCultureDoc fcultureDoc = new FicheCultureDoc();
			nomFichierf = fcultureDoc.createDocument(prele, type, secteur);
			fichierResultatf = new File(ApplicationContexte.REPERTOIRE_PROTOCOLE + nomFichierf);

			Desktop desktop = Desktop.getDesktop();
			try {
				if (fichierResultat != null) {
					desktop.open(fichierResultat);
				}
				if (fichierResultatf != null) {
					desktop.open(fichierResultatf);
				}
			} catch (IOException e1) {
				// TODO Auto-generated catch block
				e1.printStackTrace();
			}

			prelTabItem.remplir(prelTabItem.getPrelevement());
		}
	}
}
